aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/reset/[code]/+page.server.js
blob: 67f2d9199c50395c60f9e219b1145ea6ff3a40d8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { fail, redirect } from "@sveltejs/kit";
import { fd, post, login } from "$lib/utils";

export const actions = {
  default: async ({ cookies, params, request }) => {
    let ip = request.headers.get("cf-connecting-ip");
    let error;

    let { code } = params;
    let { password } = await fd(request);

    try {
      let user = await post("/reset", { code, password });
      user.password = password;

      try {
        await login(user, cookies, ip);
        error = null;
      } catch (e) {
        error ||= e.message;
      }

      if (error) return fail(400, { error });
      redirect(307, `/${user.username}`);
    } catch (e) {
      console.log(e.message);
      return fail(400, { error: e.message });
    }
  },
};